import os
import sys
from pathlib import Path

# 获取项目根目录
ROOT_DIR = Path(__file__).parent.parent
sys.path.insert(0, str(ROOT_DIR))

from app import create_app, db
from app.models import Category, Video, Tag

def init_db():
    """初始化数据库"""
    app = create_app()
    
    with app.app_context():
        # 创建所有表
        db.create_all()
        
        # 检查是否已有数据
        if Category.query.first():
            print("数据库已经初始化，跳过...")
            return
            
        # 创建默认分类
        categories = [
            Category(name='数字人教程视频', description='数字人相关的教程视频'),
            Category(name='AI工具教程', description='AI工具使用教程'),
            Category(name='技术分享', description='技术经验分享'),
            Category(name='其他', description='其他类型视频')
        ]
        
        # 添加分类
        for category in categories:
            db.session.add(category)
        
        # 创建默认标签
        tags = [
            Tag(name='入门'),
            Tag(name='进阶'),
            Tag(name='高级'),
            Tag(name='实战'),
            Tag(name='技巧')
        ]
        
        # 添加标签
        for tag in tags:
            db.session.add(tag)
            
        try:
            # 提交更改
            db.session.commit()
            print("数据库初始化成功！")
            print(f"创建了 {len(categories)} 个分类和 {len(tags)} 个标签")
            
        except Exception as e:
            db.session.rollback()
            print(f"初始化失败: {str(e)}")
            raise

if __name__ == '__main__':
    init_db() 